//最长公共前缀
//测试链接 https://leetcode.cn/problems/longest-common-prefix/
public class LongestCommonPrefix {

    //方法一 两两比较
    public String longestCommonPrefix1(String[] strs) {
        String ret = strs[0];
        for(int i = 1; i < strs.length; i++){
            ret = findCommon(ret,strs[i]);
        }
        return ret;
    }

    public String findCommon(String s1, String s2){
        int i = 0;
        int len = Math.min(s1.length(),s2.length() );
        while(i < len && s1.charAt(i) == s2.charAt(i)){
            i++;
        }
        return s1.substring(0,i);
    }


    //方法二 全部一起比较
    public String longestCommonPrefix2(String[] strs) {
        int len = strs[0].length(); //第一个字符串的长度
        int lenStrs = strs.length;  //数组长度

        int sub = 0;
        for(int i = 0; i < len; i++){

            for(int j = 0; j < lenStrs; j++){
                if(i >= strs[j].length() || //某一行的字符串长度越界了
                        strs[0].charAt(i) != strs[j].charAt(i)){  //每一行的第i个字符与第一行相比
                    return strs[0].substring(0,i);
                }
            }
        }
        return strs[0].substring(0,len);
    }
}
